8955. Вывести массив 3

 

Задан массив из n целых чисел. Вывести только его положительные элементы, не меняя первоначальный порядок.

 

Вход. Первая строка содержит число n (1 ≤ n ≤ 100). Во второй строке записаны n целых чисел, каждое из которых не превышает по модулю 100.

 

Выход. В первой строке вывести количество положительных элементов массива. Во второй строке вывести сами положительные элементы. Если положительных элементов в массиве нет, то вывести “NO”.

 

Пример входа 1

Пример выхода 1

7

-2 5 4 -3 7 -3 0

3

5 4 7

 

 

Пример входа 2

Пример выхода 2

5

-2 -1 0 -1 -5

NO

 

 

РЕШЕНИЕ

массив

 

Анализ алгоритма

Читаем входную последовательность в массив. Подсчитываем количество положительных чисел. Если оно равно 0, то выводим “NO”. Иначе выводим количество положительных чисел и сами числа.

 

Реализация алгоритма

Объявим массив для хранения последовательности.

 

int m[101];

 

Читаем входную последовательность в массив.

 

scanf("%d", &n);

for (i = 0; i < n; i++)

  scanf("%d", &m[i]);

 

В переменной cnt подсчитаем количество положительных чисел.

 

cnt = 0;

for (i = 0; i < n; i++)

  if (m[i] > 0) cnt++;

 

Если положительных чисел нет, то выводим “NO”.

 

if (cnt == 0)

  printf("NO\n");

else

{

 

Выводим количество положительных чисел.

 

  printf("%d\n", cnt);

 

Выводим положительные числа последовательности.

 

  for (i = 0; i < n; i++)

    if (m[i] > 0) printf("%d ", m[i]);

  printf("\n");

}